package com.nsu.edu.androidmvpdemo.login.Presenter;

import com.nsu.edu.androidmvpdemo.login.View.ILoginView;
import com.nsu.edu.androidmvpdemo.login.Model.ILoginModel;
import com.nsu.edu.androidmvpdemo.login.Model.LoginModelImpl;

/**
 * 作者： andli
 * 时间： 2017/12/6 17:11
 * 描述： 逻辑处理：Model和View之间的交互
 */
public class LoginPresenterImpl implements ILoginPresenter, IOnLoginFinishedListener {

    // View操作接口
    private ILoginView loginView;

    // 数据层
    private ILoginModel loginModel;

    public LoginPresenterImpl(ILoginView loginView) {
        this.loginView = loginView;
        this.loginModel = new LoginModelImpl();
    }

    @Override
    public void validateCredentials(String username, String password) {
        if (loginView != null) {
            loginView.showProgress();
        }
        // 进行登录数据的校验
        loginModel.login(username, password, this);
    }

    /********************************* 登录回调接口 *********************************/

    @Override
    public void onUsernameError() {
        if (loginView != null) {
            loginView.setUsernameError();
            loginView.hideProgress();
        }
    }

    @Override
    public void onPasswordError() {
        if (loginView != null) {
            loginView.setPasswordError();
            loginView.hideProgress();
        }
    }

    @Override
    public void onSuccess() {
        loginView.hideProgress();
        if (loginView != null) {
            loginView.navigateToHome();
        }
    }
}
